package org.example.registry;

import org.example.config.RegistryConfig;
import org.example.model.ServiceMetaInfo;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * @description 注册中心
 * @author sats@jz
 * @date 2024年12月27日 13:26
 */
public interface Registry {

    void init(RegistryConfig registryConfig);
    // 注册服务端
    void register(ServiceMetaInfo serviceMetaInfo) throws Exception;
    // 注销
    void unRegister(ServiceMetaInfo serviceMetaInfo);
    // 服务发现
    List<ServiceMetaInfo> serviceDiscovery(String serviceKey);
    // 服务销毁
    void destroy();

    // 心跳检测
    void heartBeat();

    // 监听
    void watch(String serviceKey, String serviceNodeKey);
}
